>> der code müsste erkennen das bis zur zahl 10 immer in % ausgeworfen werden soll und ab 11 immer in €.
Code anschauen und verstehen, bitte. Der entspr. Teil ist nochmal von mir hervorgehoben.
Option Explicit
Sub Bsp()
Dim vntNum As Variant
Dim avntNum As Variant
Dim avntFmt As Variant
Dim i As Long
Do
If Not IsEmpty(vntNum) Then
Call MsgBox("Ungültige Eingabe." & vbNewLine & vbNewLine & _
"Bitte geben sie einen Wert im angegebenen Gültigkeitsbereich ein.", _
vbExclamation)
End If
vntNum = Application.InputBox("Bitte eine Zahl (1-10) eingeben.", Type:=1)
If VarType(vntNum) = vbBoolean Then Exit Sub
Loop Until 1 <= vntNum And vntNum <= 10
ReDim avntNum(0 To 8) As Variant
ReDim avntFmt(0 To 8) As Variant
For i = 0 To UBound(avntNum)
If vntNum + i <= 10 Then
avntNum(i) = (vntNum + i) / 100
avntFmt(i) = "#,##0 %"
Else
avntNum(i) = vntNum + i
avntFmt(i) = "$ #,##0.00"
End If
Next
'alles in eine Spalte schreiben (hier Spalte B, ab Zeile 3)
With Range("B3").Resize(UBound(avntNum) + 1)
.NumberFormat = WorksheetFunction.Transpose(avntFmt)
.Value = WorksheetFunction.Transpose(avntNum)
End With
' 'alles in eine Zeile schreiben (hier Zeile 3, ab Spalte B)
' With Range("B3").Resize(, UBound(avntNum) + 1)
' .NumberFormat = avntFmt
' .Value = avntNum
' End With
End Sub
Wenn das Ergebnis nicht so heraus komm wie erwartet, dann ist deine Beschreibung leider nicht exakt genug.
(Die Formatierung hab ich noch mal geändert, falls dir das entgangen sein sollte; der Teil mit avntFmt)
Gruß
|